# coding:utf-8

import math
import operator
import random

# 查看math包中的内容

print(dir(math))
# ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2',
#  'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial',
# 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp',
#  'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan',
# 'tanh', 'trunc']

print(abs(-10))  # 绝对值
print(math.ceil(4.1))  # 天花板数，返回5
print(operator.lt(2, 3))  # 比较2数的大小，python3.5没有cmp(x,y)函数了
print(math.exp(3))  # 返回e的3次方
print(math.fabs(-10))  # 返回数字的绝对值，10.0
print(math.floor(4.9))  # 地板数，返回4
print(math.log(100, 10))  # 返回2.0
print(math.log10(100))  # 返回以10为底的对数
print(max(1, 2, 3, 4, 5), max("a,b,f,d"))
print(min([1, 2, 3, 4, 5]))
print(math.modf(-1.999))  # 返回数字的整数部分与小数部分，两部分的符号与数字相同，整数部分以浮点数表示
# (-0.9990000000000001, -1.0)
print(pow(2, 3))  # 2的3次方
print(round(3.4), round(3.5))  # 四舍五入
print(math.sqrt(8))  # 平方根

# Python中的随机数
print(random.choice(range(10)))  # 从0-9中随机挑一个整数
print(random.randrange(0, 100, 5))  # 从指定范围内随机挑一个随机数，基数缺省为1
print(random.random(), random.random(), random.random())  # 随机生成一个实数，在[0,1)
random.seed(20)  # 改变随机数生成器的种子seed
print(random.random(), random.random(), random.random())
my_list = [1, 2, 3, 4, 5]
print(my_list)
random.shuffle(my_list)  # 随机排序序列
print(my_list)
print(random.uniform(10, 20))  # 随机生成一个实数

# Python中的三角函数
print(math.acos(0.1))  # 返回反余弦的弧度值
print(math.asin(0.1))  # 返回反正弦的弧度值
print(math.atan(1))  # 返回反正切的弧度值
print(math.cos(math.pi/3))  # 返回弧度的余弦值
print(math.sin(math.pi/4))  # 返回弧度的正弦值
print(math.tan(math.pi))  # 返回弧度的正切值
print(math.degrees(math.pi / 2))  # 将弧度转换为角度
print(math.radians(180))  # 将角度转化为弧度
